package com.xu.system.controller;

import com.xu.system.model.pojo.menu.*;
import com.xu.system.service.IMenuService;
import jakarta.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * 菜单控制器
 *
 * @Author: 许乾伟
 * @Date: 2024/3/21 15:25
 */
@RestController
@RequestMapping("menu")
public class MenuController {
    @Autowired
    IMenuService menuService;

    /**
     * 新增菜单
     * @param req 新增菜单请求
     * @return true:成功;false:失败
     */
    @PostMapping("add")
    public Boolean add(@Valid @RequestBody AddMenuReq req) {
        return menuService.add(req);
    }
    /**
     * 编辑菜单
     * @param req 编辑菜单请求
     * @return true:成功;false:失败
     */
    @PostMapping("edit")
    public Boolean edit(@Valid @RequestBody EditMenuReq req) {
        return menuService.edit(req);
    }
    /**
     * 删除菜单
     * @param id 菜单id
     * @return true:成功;false:失败
     */
    @PostMapping("del/{id}")
    public Boolean del(@PathVariable("id") Long id) {
        return menuService.del(id);
    }

    /**
     * 查询菜单树
     * @param req 查询请求
     * @return
     */
    @GetMapping("queryMenuTreeList")
    public List<MenuTreeVo> queryMenuTreeList(QueryMenuReq req) {
        return menuService.queryMenuTreeList(req);
    }
    /**
     * 查询菜单简要信息树
     * @return 菜单简要信息树
     */
    @GetMapping("querySimpleMenuTree")
    public List<MenuSimpleTreeVo> querySimpleMenuTree() {
        return menuService.querySimpleMenuTree();
    }

}
